﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;

namespace Gemli.Data
{
    /// <summary>
    /// Attribute class that describes a <see cref="DataModel"/> data mapping
    /// for an class member (property/field) and its associated database counterpart
    /// (column/field). This class is abstract.
    /// </summary>
    public abstract class DataModelMemberAttributeBase : DataModelMappingAttributeBase
    {
        /// <summary>
        /// Gets or sets the name of the property/field that this mapping 
        /// object is associated with.
        /// </summary>
        public MemberInfo TargetMember { get; set; }
        /// <summary>
        /// Gets the type of the property/field that this mapping
        /// object is associated with.
        /// </summary>
        public Type TargetMemberType { get; protected internal set; }
    }
}
